﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Services.Common;
using Microsoft.WindowsAzure.StorageClient;

namespace CPlase.Lists
{
    [DataServiceKey("PartitionKey", "RowKey")]
    public abstract class ListInformationEntity : TableServiceEntity
    {
        override public string PartitionKey { get; set; }
        override public string RowKey { get; set; }

        /// <summary>
        /// Уникальный идентификатор сущьностей списка // ?
        /// </summary>
        virtual public string Identificator { get; set; }

        /// <summary>
        /// Количество сущностей, присутствующих в списке.
        /// +1 при добавлении каждой новой сущности в список
        /// -1 при удалении каждой сущности из списка
        /// </summary>
        public Int32 ItemsCount { get; set; }

        /// <summary>
        /// Количество всех добавлений в список, абсолютный счётчит количества
        /// Может то расти.
        /// +1 при добавлении каждой новой сущности в список
        /// При удалении сущностей из списка CountEnumerator не меняет значения
        /// 
        /// Требуется для раздачи NumeratableListItemEntity.RowKey
        /// </summary>
        public Int64 CountEnumerator { get; set; }
    }
}